#pragma once

#include <vector>

#include "using.h"

namespace tinytool
{
namespace touch
{

extern const std::string HEAD_CONTENT_PRE;
extern const std::string HEAD_CONTENT_SUF;
extern const std::string HEAD_PRAGMA_ONCE;

// - path: input path
// - namespaces: -n namespaces
// - project_name: #ifndef PROJECT_NAME_FILE_H ... #endif ...
// - - = "": 则使用 #pragram once
// - is_force: override the existd file
// - creat_directory: whether create dir
void touch(const FS::path& path, const std::vector<std::string>& namespaces = {},
           const std::string& project_name = "", bool is_force = false, bool create_directory = false);

}   // namespace touch
}   // namespace tinytool